Web services applications are user interface (UI) applications that interact with web services. Usually, web services applications are used to manipulate and display data retrieved by web services or to send operation requests to web services. The web services applications are written by different UI tools and technologies and testing is supported by automated UI testing tools. Another set of automated testing tools exists which are dedicated for web services “raw” testing.
A web services application has two layers including an application or user interface (UI) layer, and a web services connection layer. Web services are used mostly by UI applications. The application layer exists on the top of the UI application. The UI application accesses web service(s) that in turn use other services such as a database to perform operations. Both user interfaces (UI) and web services (WS) can be tested.
A user or customer is limited in testing options and can either test only one of the two layers, or write two different tests, sometimes using two different tools. If using Web Services Descriptive Language (WSDL) interface file parsing to build a test, a user can manually fill arguments information, a laboriously and non-intuitive technique for performing the test.
Difficulty arises since web services automated tests are not sufficiently reliable and test only simple and straight-forward cases. For example, web services test generation can be done by parsing the web service interface file (WSDL) and allowing the user or customer to add operation steps to the script. The added operation arguments are empty and the user has to manually edit the arguments according to the expected arguments which are generated by the application. Web services tests are not recorded but edited according to the WSDL, therefore most web services tests behave as simple unit tests and not real-time, end-to-end tests. Building a web services test that uses the real-time operation calling order with the real-time arguments is a laborious and non-intuitive work.